package com.ruoyi.bmxt.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.web.multipart.MultipartFile;

/**
 * 学生管理对象 bm_student
 * 
 * @author 魏建波
 * @date 2023-02-24
 */
public class BmStudent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 学生主键 */
    private Long studentId;

    /** 学生名字 */
    @Excel(name = "学生名字")
    private String studentName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCard;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 性别 */
    @Excel(name = "性别")
    private String sex;

    /** 民族 */
    @Excel(name = "民族")
    private String nationality;

    /** 毕业证编号 */
    @Excel(name = "毕业证编号")
    private String diplomaNo;

    /** 毕业证学校 */
    @Excel(name = "毕业证学校")
    private String diplomaSchool;

    /** 毕业证专业 */
    private String diplomaProfession;

    /** 毕业时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "毕业时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date diplomaGraduationTime;

    /** 报考学校id */
    private Long registerSchoolId;

    /** 报考层次  */
    private Long registerSchoolLevelId;

    /** 报考专业id */
    private Long registerSchoolProfessionId;

    //报考学校的名称
    @Excel(name = "报考学校")
    private String registerSchoolName;

    //报考学校的要求
    @Excel(name = "报考要求")
    private String registerSchoolRequirement;

    //报考学校的层次名称
    @Excel(name = "报考层次")
    private String registerSchoolLevelName;

    //报考学校的专业名称
    @Excel(name = "报考专业")
    private String registerSchoolProfessionName;

    /** 学费 */
    @Excel(name = "学费")
    private BigDecimal fee;

    /** 学费 */
    @Excel(name = "时长")
    private Integer durationTime;

    /** 推荐人id */
    private Long sysUserId;

    /** 登录用户id */
    private Long loginUserId;

    @Excel(name = "推荐代理人")
    private String sysUserName;

    /** 审核状态 */
    @Excel(name = "审核状态",readConverterExp = "0=未审核,1=审核通过,2=审核驳回")
    private Integer auditStatus;

    /** 失败原因 */
    @Excel(name = "失败原因")
    private String auditFailCause;

    private Long projectId;

    @Excel(name = "项目名称")
    private String projectName;

    private String nickName;

    private String deptUserId;

    private Long deptId;

    // 多个文件
    List<BmFiles> files;

    public Integer getDurationTime() {
        return durationTime;
    }

    public void setDurationTime(Integer durationTime) {
        this.durationTime = durationTime;
    }

    public List<BmFiles> getFiles() {
        return files;
    }

    public void setFiles(List<BmFiles> files) {
        this.files = files;
    }

    public String getNickName() {
        return nickName;
    }

    public Long getLoginUserId() {
        return loginUserId;
    }

    public void setLoginUserId(Long loginUserId) {
        this.loginUserId = loginUserId;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getDeptUserId() {
        return deptUserId;
    }

    public void setDeptUserId(String deptUserId) {
        this.deptUserId = deptUserId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getSysUserName() {
        return sysUserName;
    }

    public void setSysUserName(String sysUserName) {
        this.sysUserName = sysUserName;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public String getRegisterSchoolName() {
        return registerSchoolName;
    }

    public void setRegisterSchoolName(String registerSchoolName) {
        this.registerSchoolName = registerSchoolName;
    }

    public String getRegisterSchoolLevelName() {
        return registerSchoolLevelName;
    }

    public void setRegisterSchoolLevelName(String registerSchoolLevelName) {
        this.registerSchoolLevelName = registerSchoolLevelName;
    }

    public String getRegisterSchoolProfessionName() {
        return registerSchoolProfessionName;
    }

    public void setRegisterSchoolProfessionName(String registerSchoolProfessionName) {
        this.registerSchoolProfessionName = registerSchoolProfessionName;
    }

    public void setStudentId(Long studentId)
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }
    public void setStudentName(String studentName) 
    {
        this.studentName = studentName;
    }

    public String getStudentName() 
    {
        return studentName;
    }
    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setNationality(String nationality) 
    {
        this.nationality = nationality;
    }

    public String getNationality() 
    {
        return nationality;
    }
    public void setDiplomaNo(String diplomaNo) 
    {
        this.diplomaNo = diplomaNo;
    }

    public String getDiplomaNo() 
    {
        return diplomaNo;
    }
    public void setDiplomaSchool(String diplomaSchool) 
    {
        this.diplomaSchool = diplomaSchool;
    }

    public String getDiplomaSchool() 
    {
        return diplomaSchool;
    }
    public void setDiplomaProfession(String diplomaProfession) 
    {
        this.diplomaProfession = diplomaProfession;
    }

    public String getDiplomaProfession() 
    {
        return diplomaProfession;
    }
    public void setDiplomaGraduationTime(Date diplomaGraduationTime) 
    {
        this.diplomaGraduationTime = diplomaGraduationTime;
    }

    public Date getDiplomaGraduationTime() 
    {
        return diplomaGraduationTime;
    }
    public void setRegisterSchoolId(Long registerSchoolId) 
    {
        this.registerSchoolId = registerSchoolId;
    }

    public Long getRegisterSchoolId() 
    {
        return registerSchoolId;
    }
    public void setRegisterSchoolLevelId(Long registerSchoolLevelId) 
    {
        this.registerSchoolLevelId = registerSchoolLevelId;
    }

    public Long getRegisterSchoolLevelId() 
    {
        return registerSchoolLevelId;
    }
    public void setRegisterSchoolProfessionId(Long registerSchoolProfessionId) 
    {
        this.registerSchoolProfessionId = registerSchoolProfessionId;
    }

    public Long getRegisterSchoolProfessionId() 
    {
        return registerSchoolProfessionId;
    }
    public void setSysUserId(Long sysUserId) 
    {
        this.sysUserId = sysUserId;
    }

    public Long getSysUserId() 
    {
        return sysUserId;
    }
    public void setAuditStatus(Integer auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() 
    {
        return auditStatus;
    }
    public void setAuditFailCause(String auditFailCause) 
    {
        this.auditFailCause = auditFailCause;
    }

    public String getAuditFailCause() 
    {
        return auditFailCause;
    }

    public String getRegisterSchoolRequirement() {
        return registerSchoolRequirement;
    }

    public void setRegisterSchoolRequirement(String registerSchoolRequirement) {
        this.registerSchoolRequirement = registerSchoolRequirement;
    }

    // 证件照
    MultipartFile[] certificateFile;
    // 身份证正面
    MultipartFile[] idCardFrontFile;
    // 身份证反面
    MultipartFile[] idCardVersoFile;
    // 前置学历照片
    MultipartFile[] highSchoolCertificateFile;

    // 证明材料
    MultipartFile[] evidentiaryMaterialFiles;


    public MultipartFile[] getEvidentiaryMaterialFiles() {
        return evidentiaryMaterialFiles;
    }

    public void setEvidentiaryMaterialFiles(MultipartFile[] evidentiaryMaterialFiles) {
        this.evidentiaryMaterialFiles = evidentiaryMaterialFiles;
    }

    public MultipartFile[] getCertificateFile() {
        return certificateFile;
    }

    public void setCertificateFile(MultipartFile[] certificateFile) {
        this.certificateFile = certificateFile;
    }

    public MultipartFile[] getIdCardFrontFile() {
        return idCardFrontFile;
    }

    public void setIdCardFrontFile(MultipartFile[] idCardFrontFile) {
        this.idCardFrontFile = idCardFrontFile;
    }

    public MultipartFile[] getIdCardVersoFile() {
        return idCardVersoFile;
    }

    public void setIdCardVersoFile(MultipartFile[] idCardVersoFile) {
        this.idCardVersoFile = idCardVersoFile;
    }

    public MultipartFile[] getHighSchoolCertificateFile() {
        return highSchoolCertificateFile;
    }

    public void setHighSchoolCertificateFile(MultipartFile[] highSchoolCertificateFile) {
        this.highSchoolCertificateFile = highSchoolCertificateFile;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("studentId", getStudentId())
            .append("studentName", getStudentName())
            .append("idCard", getIdCard())
            .append("phone", getPhone())
            .append("sex", getSex())
            .append("nationality", getNationality())
            .append("diplomaNo", getDiplomaNo())
            .append("diplomaSchool", getDiplomaSchool())
            .append("diplomaProfession", getDiplomaProfession())
            .append("diplomaGraduationTime", getDiplomaGraduationTime())
            .append("registerSchoolId", getRegisterSchoolId())
            .append("registerSchoolName", getRegisterSchoolName())
            .append("registerSchoolLevelId", getRegisterSchoolLevelId())
            .append("registerSchoolLevelName", getRegisterSchoolLevelName())
            .append("registerSchoolProfessionName", getRegisterSchoolProfessionName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("sysUserId", getSysUserId())
            .append("auditStatus", getAuditStatus())
            .append("auditFailCause", getAuditFailCause())
            .toString();
    }
}
